/*
    This file is part of the substandard lisp implementation of Standard Lisp
    Copyright (C) 2011 Nicky Nickell

    substandard lisp is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

function std_not(a, env) {
  var u = a[0];

  return (u == NIL) ? T : NIL;
}

/*---
name: not
arity: 1
rest: false
ftype: FTYPE_EXPR

synonyms:
  - 'null'

argument-types:
  - CLASS_ANY

argument-names:
  - U
  
doc: |
  Returns T if U is NIL, else return NIL.

tests: |
  (not T) -> NIL
  (not NIL) -> T
  (not 'foo) -> NIL
  (not 1) -> NIL
  (not 1.1) -> NIL
  (null "foo") -> NIL
  (null '(1 2 3)) -> NIL
  (null ()) -> T
...*/
